import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 取消全局证书验证
import ssl

ssl.create_default_https_context = ssl._create_unverified_context

# 1. 单变量
np.random.seed(0)  # 确定随机数生成器生成的数据是一样的
nums = np.random.randn(100)
# kde：高斯核密度曲线
# hue：目标值
# sns.histplot(kde=True, data=nums)
# plt.show()

# 2.多变量
df = pd.DataFrame({"x": np.random.randn(500), "y": np.random.randn(500)})

# sns.scatterplot(x='x', y='y', data=df, s=50);
# plt.show()

# sns.kdeplot(x='x', y='y', data=df, s=50);
# plt.show()

# sns.lineplot(x='x', y='y', data=df);
# plt.show()

# # 3. 绘制成对双变量
# dataset = sns.load_dataset("iris")
# sns.pairplot(dataset)
# plt.show()

# # 4. 类别散点图
# jitter抖动程度，仅仅沿着类别轴，当大量数据产生重叠，True代表部分数据不重叠
# sns.stripplot(x='x', y='y', data=df,hue="x",jitter=True)
# plt.show()

# # 5.类别内数据分布
# sns.violinplot(x='x', y='y', data=df);
# plt.show()

# sns.boxplot(x='x', y='y', data=df,hue="x");
# plt.show()

# # 6.类别内的数量统计
# sns.barplot(x='x', y='y', data=df);
# plt.show()

# sns.pointplot(x='x', y='y', data=df);
# plt.show()